1. Introduction à NumPy (20 min)
Objectif : Comprendre l’intérêt de NumPy, son installation et ses bases.
Contenu :
- Pourquoi utiliser NumPy ?
- Performance, simplicité pour les calculs numériques, interopérabilité avec d’autres bibliothèques (Pandas, Matplotlib, etc.).
- Installation et import
pip install numpy
import numpy as np
- Comparaison avec les listes Python : rapidité, fonctionnalités avancées.
Exemple :
import numpy as np
lst = [1, 2, 3]
arr = np.array(lst)
print(arr, type(arr))
Exercice d’échauffement (5 min) :
- Créer un tableau NumPy à partir d’une liste Python.
- Afficher sa dimension et son type.
2. Création et manipulation de tableaux (40 min)
Objectif : Savoir créer, accéder et modifier des tableaux NumPy.
Contenu :
- Création de tableaux :
np.array(), np.zeros(), np.ones(), np.arange(), np.linspace()
- Accès aux éléments : indexation, slicing
- Attributs des tableaux :
shape, dtype, size, ndim
- Modification des éléments
Exemples :
arr = np.arange(10)
print(arr[3:7])
arr[1] = 99
Exercice (10 min) :
- Créer un tableau de 5 zéros.
- Créer un tableau de 10 nombres de 0 à 9.
- Accéder au 3ème élément, puis aux éléments de 2 à 5.
Mini-TP (10 min) :
- Créer un tableau de 10 nombres aléatoires entre 0 et 1.
- Remplacer tous les éléments supérieurs à 0.5 par 1, les autres par 0.
3. Opérations de base et fonctions élémentaires (40 min)
Contenu :
- Opérations élémentaires :
+, -, *, /, **
- Fonctions élémentaires :
np.sin(), np.exp(), np.sqrt(), etc.
- Agrégations :
sum(), mean(), max(), min()
- Comparaisons et masques booléens
Exemples :
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(a + b)
print(np.sin(a))
print(a > 2)
Exercice (10 min) :
- Créer deux tableaux de 5 éléments.
- Calculer leur somme, produit, et moyenne.
- Trouver les éléments du premier tableau supérieurs à 2.
Mini-TP (10 min) :
- Générer un tableau de 100 nombres aléatoires.
- Calculer la moyenne, l’écart-type, et le nombre d’éléments supérieurs à 0.5.
4. Tableaux multidimensionnels (40 min)
Objectif : Comprendre et manipuler des tableaux 2D et plus.
Contenu :
- Création de tableaux 2D :
np.array([[1,2],[3,4]])
- Accès aux lignes/colonnes :
arr[1, :], arr[:, 1]
- Redimensionnement :
reshape()
- Opérations sur les axes :
sum(axis=0), mean(axis=1)
Exemples :
mat = np.array([[1, 2], [3, 4]])
print(mat.shape)
print(mat.sum(axis=0))
Exercice (10 min) :
- Créer une matrice 3x3 de 1.
- Extraire la deuxième ligne.
- Calculer la somme de chaque colonne.
Mini-TP (10 min) :
- Créer une matrice 4x4 de nombres aléatoires.
- Remplacer la diagonale par des 1.
- Calculer la moyenne de chaque ligne.
5. Le Broadcasting : règles et applications (30 min)
Objectif : Comprendre et appliquer le broadcasting pour des opérations efficaces.
Contenu :
- Règles du broadcasting
- Exemples d’opérations entre tableaux de tailles différentes
- Applications pratiques
Exemples :
a = np.array([1, 2, 3])
b = 2
print(a * b)
Exercice (10 min) :
- Ajouter 5 à chaque élément d’un tableau 2D.
- Multiplier chaque ligne d’une matrice par un vecteur.
Mini-TP (10 min) :
- Créer une matrice 3x3 et un vecteur de 3 éléments.
- Ajouter le vecteur à chaque ligne de la matrice.
6. Exercices progressifs et corrigés (30 min)
Objectif : Consolider les acquis avec des exercices variés.
Exercices :
- Créer un tableau de 100 éléments, calculer la somme des éléments pairs.
- Générer une matrice identité 5x5, puis extraire la sous-matrice 2x2 en haut à gauche.
- Normaliser un tableau (soustraire la moyenne, diviser par l’écart-type).
7. Projet final : Application pratique (40 min)
Objectif : Mettre en pratique l’ensemble des notions sur un cas concret.
Sujet :
Analyse de données météorologiques
- Données : tableau 2D (jours x températures min/max).
- Tâches :
- Charger les données (simulées ou réelles).
- Calculer la température moyenne par jour et par mois.
- Trouver le jour le plus chaud et le plus froid.
- Normaliser les températures.
- (Bonus) Visualiser avec Matplotlib.
Exemple de données :
data = np.array([
[10, 15], [12, 16], [8, 14],
[9, 13], [11, 17], [7, 12]
])
Consignes :
- Travail en binôme ou individuel.
- Présentation rapide des résultats à la fin.
Matériel à prévoir :
- Ordinateurs avec Python et NumPy installés.
- Fichier Jupyter Notebook ou script Python avec les exemples et exercices.
- Jeu de données pour le projet final.